Skip to content

Implement Steam catalog page with infinite scroll and View Transition API - #288

Merged
Stivenjs merged 4 commits into
mainfrom
feature/game-streaming
Aug 15, 2026
Merged

Implement Steam catalog page with infinite scroll and View Transition API#288
Stivenjs merged 4 commits into
mainfrom
feature/game-streaming

Conversation

@Stivenjs

Copy link
Copy Markdown
Owner

This pull request introduces several improvements to the Steam catalog page and related UI components, focusing on more robust scroll position restoration, performance optimizations, and code simplification. The most significant changes include replacing the sessionStorage-based scroll restoration with a centralized store approach, removing unnecessary virtualization logic from the catalog grid, and updating GitHub Actions workflows for better caching and flexibility.

Steam Catalog Scroll Restoration and Navigation:

  • Replaced the previous useCatalogScrollRestoration hook (which used sessionStorage) with a new approach that stores and restores the scroll position via useShellUiStore, making scroll restoration more reliable and centralized. Now, scroll position is saved on navigation and restored on page load, and is also reset when filters change. (apps/desktop/src/features/steam-catalog/pages/SteamCatalogPage.tsx, apps/desktop/src/features/steam-catalog/components/SteamCatalogGridItem.tsx, apps/desktop/src/features/steam-catalog/components/SteamCatalogTrendingHero.tsx, apps/desktop/src/features/steam-catalog/hooks/useCatalogScrollRestoration.ts) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

Catalog Grid and Performance Optimizations:

  • Removed the usage of @tanstack/react-virtual and custom virtualization logic from SteamCatalogVirtualizedGrid, simplifying the grid rendering and relying on CSS grid with content-visibility for performance. This reduces complexity and potential rendering bugs. (apps/desktop/src/features/steam-catalog/components/SteamCatalogVirtualizedGrid.tsx, apps/desktop/package.json) [1] [2] [3] [4]

  • Disabled view transitions for catalog grid items to avoid unnecessary animations and improve perceived performance. (apps/desktop/src/features/games/GameCard.tsx)

UI and Animation Tweaks:

  • Adjusted the trending hero carousel's minimum height for better layout consistency and slightly reduced page transition animation duration for a snappier feel. Also removed blur from page transition animations for performance. (apps/desktop/src/features/steam-catalog/components/SteamCatalogTrendingHero.tsx, apps/desktop/src/styles/App.css) [1] [2] [3]

CI/CD Workflow Improvements:

  • Updated GitHub Actions workflows for both CI and release to support workflow dispatch, improved Rust caching strategies, and ensured cache keys are platform-specific for better build performance and reliability. (.github/workflows/ci.yml, .github/workflows/release.yml) [1] [2] [3]

These changes collectively improve the user experience in the Steam catalog, simplify the codebase, and enhance developer workflows.

@Stivenjs Stivenjs self-assigned this Aug 15, 2026
@Stivenjs Stivenjs added enhancement New feature or request wontfix This will not be worked on labels Aug 15, 2026
@Stivenjs
Stivenjs merged commit b7a84a2 into main Aug 15, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request wontfix This will not be worked on

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant